<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>vue系列课程</title>
</head>
<body>
<div id="app">
    <h1>{{msg}} {{count}}</h1>

    <!--

            插槽： slot  作用： 用来扩展现有组件 让组件变得更加灵活  usb 接口
            具名插槽:  带有名字插槽
            默认插槽:

    -->

    <!--如果没有默认插槽，我们将创建无数个类似的组件来实现功能扩展，相当不灵活，而且代码冗余-->
    <!--<login></login>
    <hr>
    <login1></login1>
    <hr>
    <login2></login2>-->

    <!--使用默认插槽-->
    <!--<login></login>-->

    <!--给aa插槽赋值，实现组件的功能扩展-->
    <login><span slot="aa">welcome here! -- {{msg}}</span></login>
    <hr>

    <!--给bb插槽赋值-->
    <login><span slot="bb">welcome here! -- {{msg}}</span></login>
    <hr>

    <!--在aa插槽中插入按钮，并且绑定点击事件-->
    <login><button slot="aa" @click="incrmentCount">点我</button></login>
    <hr>


</div>
</body>
</html>
<script src="js/vue.js"></script>
<script>

    // const login={
    //     template:`<div><h3>用户登录</h3></div>`
    // };
    //
    // const login1={
    //     template:`<div><h3>用户登录</h3> <span> welcome here! </span></div>`
    // };
    //
    // const login2={
    //     template:`<div><span> welcome here! </span> <h3>用户登录</h3></div>`
    // };

    // const login={
    //     template:`<div><slot name="aa"><span>我是默认插槽，插槽相当于占位符，如果哪个插槽没有默认值，那么它的值就是我</span></slot><h3>用户登录</h3><slot name="bb"></slot></div>`
    // };

    const login={
        template:`<div><slot name="aa"></slot><h3>用户登录</h3><slot name="bb"></slot></div>`
    };

    const app = new Vue({
        el: "#app",
        data: {
            msg: "组件的slot(插槽)",
            count:0,

        },
        methods:{
            incrmentCount(){
                this.count++;
            }
        },
        components:{ //注册局部组件
            login,
            // login1,
            // login2
        }
    });
</script>
